package cn.schoolwow.quickflow.service.quickFlow.getData;

import java.util.Map;

public interface QuickFlowGetDataOperation {
    /**
     * 获取全局线程上下文参数
     */
    Object getContextThreadLocalData(String key);

    /**
     * 获取全局线程上下文参数
     */
    <T> T getContextThreadLocalData(String key, Class<T> clazz);

    /**
     * 获取全局线程上下文实例参数
     */
    <T> T getContextThreadLocalInstanceData(Class<T> clazz);

    /**
     * 获取全局线程上下文参数
     */
    Object getContextData(String key);

    /**
     * 获取全局线程上下文参数
     */
    <T> T getContextData(String key, Class<T> clazz);

    /**
     * 获取全局线程上下文实例参数
     */
    <T> T getContextInstanceData(Class<T> clazz);

    /**
     * 获取全局线程上下文参数
     */
    Map<String,Object> getContextThreadLocalDataMap();

    /**
     * 获取全局上下文参数
     */
    Map<String,Object> getContextDataMap();

}
